package practicaspl.dos;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;


public class Files {
	
	private Simbolos simbolos;
	private PalabrasReservadas reservadas;
	
	private File ficherosimbolos;
	private File ficheroreservadas;
	private FileReader fread;
	private BufferedReader buffer;

	public Files() {
		
		setFicherosimbolos(null);
		setFicheroreservadas(null);
		fread = null;
		buffer = null;
		simbolos = new Simbolos();
		reservadas = new PalabrasReservadas();
		
	}
	
	public File getFicherosimbolos() {
		return ficherosimbolos;
	}

	public void setFicherosimbolos(File ficherosimbolos) {
		this.ficherosimbolos = ficherosimbolos;
	}

	public File getFicheroreservadas() {
		return ficheroreservadas;
	}

	public void setFicheroreservadas(File ficheroreservadas) {
		this.ficheroreservadas = ficheroreservadas;
	}
	
	public Simbolos getSimbolos() {
		return simbolos;
	}
	
	public PalabrasReservadas getPalabrasReservadas() {
		return reservadas;
	}

	
	public int leer_simbolos(String ficheroSimb) throws IOException
	{
		
		setFicherosimbolos(new File (ficheroSimb));
		fread = new FileReader (ficheroSimb);
		buffer = new BufferedReader(fread);
		
		String linea = "";
		
	    while((linea = buffer.readLine())!= null)
	    {
	    	for(int i = 0; i < linea.length(); i++) {
	    		if(Character.isDigit(linea.charAt(i)) || Character.isLetter(linea.charAt(i)))
	    			simbolos.getColecc_simbolos().add(linea.charAt(i));
	    		else
	    			simbolos.getColecc_simbolos_p().add(linea.charAt(i));
	    	}
	    }

	    buffer.close();

		return (simbolos.getColecc_simbolos().size() + simbolos.getColecc_simbolos_p().size());
		
	}
	
	public int leer_palabras(String ficheropalabras) throws IOException {
			
		setFicheroreservadas(new File (ficheropalabras));
		fread = new FileReader (ficheropalabras);
		buffer = new BufferedReader(fread);
		
		String linea = "";
	    while((linea = buffer.readLine())!= null)
	    {
	    	reservadas.getPalabras().add(linea);
	    }
	    
	    buffer.close();
		
		return (reservadas.getPalabras().size());
		
	}

}
